package com.lfy.commons.anno.limit;

import com.lfy.commons.strategy.LimitStrategyEnum;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 限流注解
 *
 * @author <a href="https://www.lvfeiy.top">吕飞扬</a>
 * @date 2023/10/16 14:57
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(CurrentLimitContaion.class)
public @interface CurrentLimit {
    /**
     * 时间
     */
    int time() default 10;

    /**
     * 次数
     */
    int once() default 20;

    /**
     * 时间单位
     */
    TimeUnit nuit() default TimeUnit.SECONDS;

    /**
     * 策略
     */
    LimitStrategyEnum strategy() default LimitStrategyEnum.Id;

}
